package engine

import (
	"calculator/internal/app"
	appImpl "calculator/internal/app/impl"

	"github.com/pkg/errors"
	"gorm.io/gorm"
)

// NewCalculatorEngine 创建计算引擎实例
func Create(db *gorm.DB, jsonContent []byte) (app.AppService, error) {
	// 初始化数据服务（假设存在默认实现）
	if app, err := appImpl.NewAppService(db, jsonContent); err == nil {
		return app, nil
	} else {
		return nil, errors.Wrapf(err, "ENGINE002: 初始化数据服务失败")
	}
}

func CreateDB(config app.DBConfig, jsonContent []byte) (*gorm.DB, error) {
	// 创建数据库连接
	if db, err := appImpl.CreateDB(config, jsonContent); err == nil {
		return db, nil
	} else {
		return nil, errors.Wrapf(err, "ENGINE001: 创建数据库连接失败")
	}
}
